home *** CD-ROM | disk | FTP | other *** search
- DIRECTPLAY« 8 LOGGING UTILITY (DP8LOG.EXE)
-
- Like many parts of DirectX, the debug version of DirectPlay 8 sends
- debugging messages meant to aid you in development to a debug program.
- DirectPlay is also able to send this debugging information to a region
- of shared memory. The purpose of the dp8log.exe utility is to read and
- display the contents of that region of memory. This allows you to obtain
- the debug information on machines that do not have a debugger and also
- gives you a convenient way to save the debugging information to a file
- by redirecting the output from dp8log.exe to a file.
-
- To display the contents of shared memory simply run dp8log.exe from the
- command prompt. The contents of the shared memory will be output to the
- standard output device (the screen). If you want to save the debug
- output to a file, simply redirect standard output to a file. For example,
- the command:
-
- dp8log > debug.txt
-
- Will save the debug output in a file called debug.txt in the current
- directory.
-
- Note that the shared memory region only exists while a DirectPlay 8
- application is running and has loaded one or more of the DirectPlay 8
- dlls. When all DirectPlay applications exit or unload the DirectPlay 8
- dlls, the shared memory region is deallocated. This means that you can
- only get output from dp8log.exe while one or more of the DirectPlay 8
- dlls are loaded (i.e. the application using DirectPlay 8 is running).
-
- Also note that all DirectPlay 8 applications share the same area of
- shared memory. This means that the debug output will contain output
- from all processes using DirectPlay 8.
-
- You can change the behavior of the DirectPlay 8 debug output by adding
- entries to win.ini in the windows directory.
-
- DirectPlay 8 looks for the [DirectPlay8] section in win.ini, and it
- recognizes the following attributes:
-
- debug=x
- log=x
- debug.<component>=x
- log.<component>=x
- verbose=x
-
- These attributes are described below:
-
- debug - determines how much information is sent to the debug log, 0 is
- the least amount (critical errors only), 9 is the most (practically
- everything that DirectPlay does). Note that setting "debug" to a high
- level takes a fair amount of CPU time and will lower the performance
- of your application.
-
- DirectPlay is subdivided into a number of components. It is possible to
- control the debug level of individual components. The following
- compoenents are available:
-
- core - session layer protocol (e.g. player and group management)
- addr - DirectPlay addressing (i.e. IDirectPlay8Address)
- lobby - lobby client and lobbied application
- protocol - transport protocol (i.e. retries, acks, etc.)
- voice - DirectPlay Voice
- dpnsvr - the enumeration server/redirector (dpnsvr.exe)
- wsock - winsock (IP/IPX) service provider
- modem - serial and modem service provider
- shared - shared untility functions in DirectPlay
-
- The "debug" setting sets the default debug level. You can override this
- with specific component levels, e.g.
-
- debug=1 ; sets the default level to 1
- debug.voice=5 ; set voice related debug level to 5
- debug.wsock=0 ; set the winsock service provider debug level to 0
-
- The "log" attribute determines where the debug information is sent.
- The following values are valid:
-
- log=0 ; send no debug information
- log=1 ; send debug info to debug console (i.e vc++ debug window)
- log=2 ; send debug info to shared memory
- log=3 ; send debug info to both console and shared memory
-
- As with the "debug" attribute, you can specify components for the
- log attribute. For example:
-
- log=1 ; default to sending debug information to the debug console
- log.voice=3 ; send voice debug information to console and memory
- log.wsock=0 ; send winsock service provider debug information to nowhere
-
- The "verbose" attribute determines how much information is contained
- in each debug message. There are two verbosity levels, "0" and "1".
- "0" is the default. Example:
-
- verbose=1 ; sent the verbosity level to 1
-
- Experiment with the different verbosity levels and decide which one
- serves your purposes best.
-
- Here is a complete example win.ini section:
-
- [DirectPlay8]
- debug=1 ; set the default debug level to 1
- debug.core=5 ; set the core debug level to 5
- log=1 ; default to sending debug output to console only
- log.core=3 ; send the core debug output to both console and memory
- verbose=1 ; use verbosity level 1
-
- If no [DirectPlay8] section is found in win.ini, DirectPlay defaults
- to the following settings:
-
- [DirectPlay8]
- log=1
- debug=0
-
- Therefore you will always see critical errors in the debug console.